package com.cango.qutz.web.auth.org.service;

import java.util.List;

import com.cango.qutz.web.entity.OrgEntity;
import com.cango.framework.base.pagination.PageInfo;
import com.cango.framework.base.pagination.PaginationResult;

/**
 * <p>ClassName: IOrgService</p>
 * <p>Description: 机构Service接口</p>
 * <p>Author: weih</p>
 * <p>Date: 2015-04-01</p>
 */
public interface IOrgService {
    /**
     * <p>Description: 插入机构</p>
     * @param org 机构对象
     * @return
     */
    int insert(OrgEntity org);
    
    /**
     * <p>Description: 更新机构</p>
     * @param org 机构对象
     * @return
     */
    int update(OrgEntity org);
    
    /**
     * <p>Description: 删除机构</p>
     * @param org 机构对象
     * @return
     */
    int delete(OrgEntity org);
    
    /**
     * <p>Description: 根据机构id查询机构记录</p>
     * @param org 机构对象
     * @return 机构对象
     */
    OrgEntity queryObjectById(Integer orgId);
    
    /**
     * <p>Description: 查询机构记录列表</p>
     * @param param 机构对象
     * @return 机构记录列表
     */
    List<OrgEntity> queryList(Object param);
    
    /**
     * <p>Description: 分页查询机构记录列表</p>
     * @param param 机构对象
     * @param pageinfo 分页对象
     * @return 分页记录
     */
    PaginationResult<OrgEntity> queryListByPage(OrgEntity param, PageInfo pageinfo);
    
    /**
     * <p>Description: 验证机构代码是否已存在</p>
     * @param orgCode 机构代码
     * @return 是否存在
     */
    boolean validOrgCode(String orgCode);
    
    /**
     * 功能描述: <br>
     * 根据机构代码查询机构信息
     *
     * @param orgCode
     * @return
     * @see [相关类/方法](可选)
     * @since [产品/模块版本](可选)
     */
    OrgEntity queryOrgByCode(String orgCode);
    /**
     * 功能描述: <br>
     * 根据机构代码查询机构信息
     *
     * @param object
     * @return List<OrgEntity>
     * @see [相关类/方法](可选)
     * @since [产品/模块版本](可选)
     */
	List<OrgEntity> queryOrgRegionList(OrgEntity orgentity);
}
